package com.lisen.common.base.dao;

import java.io.Serializable;
import java.util.List;

import org.hibernate.Query;

public interface Dao {

	/**
	 * 获取所有对象
	 * 
	 * @param class1
	 * @return
	 */
	public abstract List<?> getObjects(Class<?> class1);

	/**
	 * 根据 唯一标识获取对象
	 * 
	 * @param class1
	 * @param serializable
	 * @return
	 */
	public abstract Object getObject(Class<?> class1, Serializable serializable);

	/**
	 * 保存
	 * 
	 * @param obj
	 */
	public abstract void saveObject(Object obj);

	/**
	 * 根据唯一标识删除对象
	 * 
	 * @param class1
	 * @param serializable
	 */
	public abstract void removeObject(Class<?> class1, Serializable serializable);

	/**
	 * 更新
	 * 
	 * @param obj
	 */
	public abstract void updateObject(Object obj);

	/**
	 * 創建hql查詢
	 * 
	 * @param hql
	 *            hql语句
	 * @param values
	 *            值
	 * @return
	 */
	public Query createQuery(String hql, Object... values);
}
